﻿using ARC.AliYun.SMSService.Models;
using ARC.AliYun.SMSService.Models.DigitalSmsModels;
using System.Collections.Generic;

namespace ARC.AliYun.SMSService.Interfaces
{
    /// <summary>
    /// 数字短信接口
    /// </summary>
    public interface IDigitalSms
    {
        /// <summary>
        /// 创建数字模板
        /// </summary>
        /// <param name="templateName">模板名称</param>
        /// <param name="files">文件集合</param>
        /// <param name="remark">备注</param>
        /// <returns></returns>
         AddAndDelDigitalTemResponse AddDigitalTemplate(string templateName, List<DigitalSmsAddTemFileArray> files, string remark);
        /// <summary>
        /// 删除数字模板
        /// </summary>
        /// <param name="templateCode">模板code</param>
        /// <returns></returns>
         AddAndDelDigitalTemResponse DeleDigitalTemplate(string templateCode);
        /// <summary>
        /// 请求查询模板状态
        /// </summary>
        /// <param name="templateCode">模板Code</param>
        /// <returns></returns>
         QueryDigitalTemResponse QueryDigitalTemplate(string templateCode);
        /// <summary>
        /// 发送数字短信
        /// </summary>
        /// <param name="phoneNumbers">电话号</param>
        /// <param name="templateCode">模板Code</param>
        /// <param name="templateParam">模板参数</param>
        /// <returns></returns>
         SendSmsResponse SendDigitalSms(string phoneNumbers, string templateCode, Dictionary<string, string> templateParam);
        /// <summary>
        /// 批量发送数字短信
        /// </summary>
        /// <param name="phoneNumbers"></param>
        /// <param name="templateCode"></param>
        /// <param name="templateParam"></param>
        /// <returns></returns>
         SendSmsResponse SendDigitalSmsBatch(List<string> phoneNumbers, string templateCode, List<Dictionary<string, string>> templateParam);
        /// <summary>
        /// 短信发送记录和发送状态
        /// </summary>
        /// <param name="phoneNumber">接收短信的手机号码。</param>
        /// <param name="sendDate">短信发送日期，支持查询最近30天的记录。格式为yyyyMMdd，例如20181225。</param>
        /// <param name="pageSize">分页查看发送记录，指定每页显示的短信记录数量。取值范围为1 ~50</param>
        /// <param name="currentPage">分页查看发送记录，指定发送记录的的当前页码</param>
        /// <returns></returns>
         QuerySendSmsDetails QueryDigitalSendDetails(string phoneNumber, string sendDate, int pageSize, int currentPage);
    }
}
